درس چهارم

ابزار وبلاگ

Computer
درباره وبلاگ


سلام این وبلاگ جهت آموزش برنامه نویسی ویژوال ساخته شده است آموزش سی شارپ ، ASP.net, ویژوال استودیو انشاءالله که به دردتون بخوره!!!!!
نويسندگان
دو شنبه 27 آذر 1391برچسب:سی شارپ,آموزش,ویژوال استودیو,C#,Visual studio,learning, :: 17:47 :: نويسنده : مصطفی

ﺳﺎﺧﺘﺎرھﺎی ﺗﺼﻤﯿﻢ ﮔﯿﺮی ‬


‫در ﺑﺴﯿﺎری از ﻣﻮارد ھﻨﮕﺎم ﺑﺮﻧﺎﻣﻪ ﻧﻮﻳﺴﻲ ﻻزم اﺳـﺖ ﺗـﺎ از ﻋﺒـﺎرات ﺷـﺮﻃﻲ اﺳـﺘﻔﺎده ﻛﻨـﯿﻢ. ﺑـﺮای اﻧﺠـﺎم اﻳﻨﻜـﺎر دو‬ ‫روش ﻋﻤﺪه وﺟﻮد دارد. اﺳﺘﻔﺎده از ‪ if‬ و ﻳﺎ ‪ . switch‬از ‪ if‬ ﺑﯿـﺸﺘﺮ ﺑـﺮای ﻣﻘﺎﻳـﺴﻪ ھـﺎی ﺗﻜـﻲ و ﻛﻮﭼـﻚ اﺳـﺘﻔﺎده ﻣـﻲ‬ ‫ﺷﻮد و ﺣﺎﺻﻞ ﻣﻘﺎﻳﺴﻪ ی آن ﻳﺎ ‪ true‬ اﺳﺖ و ﻳﺎ ‪ . false‬از ﻋﺒﺎرت ‪ switch‬ھﻨﮕﺎﻣﻲ اﺳﺘﻔﺎده ﻣـﻲ ﺷـﻮد ﻛـﻪ ﻣﻘﺎﻳـﺴﻪ ‫ھﺎی ﻣﺘﻌﺪدی ﺑﺎﻳﺪ در ﻣﻮرد ﻳﻚ ﻣﻘﺪار ﺻﻮرت ﮔﯿﺮد.‬
‫ھﺮ دو ﻋﺒﺎرت ‪ if‬ و ‪ switch‬ﺗﻮﺳﻂ ﻋﺒﺎرﺗﮫﺎی ‪ Boolean‬ ﻛﻨﺘﺮل ﻣﻲ ﺷﻮﻧﺪ( ‪ true‬و ﻳﺎ ‪ . ( false‬در ھﻨﮕـﺎم اﺳـﺘﻔﺎده از ‪if‬‬ ‫اﮔﺮ ﻋﺒﺎرت ‪ Boolean‬ ﺣﺎﺻﻞ اش ‪ true‬ﺑﺎﺷﺪ اوﻟﯿﻦ ﻗﺴﻤﺖ ﺷﺮط اﺟﺮا ﻣﻲ ﺷـﻮد و ﺳـﭙﺲ ﺑﺮﻧﺎﻣـﻪ از اﻧﺘﮫـﺎی ‪ if‬ اداﻣـﻪ‬ ‫ﭘﯿﺪا ﻣﻲ ﻛﻨﺪ. اﮔﺮ ﺣﺎﺻﻞ ﻋﺒﺎرت ‪ Boolean‬ ﻣﺴﺎوی ‪ false‬ ﺑﺎﺷﺪ ﻛﻨﺘﺮل ﺑﺮﻧﺎﻣﻪ ﺑﻪ ﻗﺴﻤﺖ ‪ else‬ ﻣﻨﺘﻘﻞ ﻣﻲ ﺷﻮد.‬

‫ﻣﺜﺎل :‬


‫ﻳﻚ ﭘﺮوژه ی ﺟﺪﻳﺪ ‪ console‬ﺑﺎز ﻛﻨﯿﺪ و ﻧﺎم آﻧﺮا ‪ ex۴۰‬ ﺑﮕﺬارﻳﺪ. ﺳﭙﺲ ﻛﺪ زﻳﺮ را در آن وارد و اﺟﺮا ﻛﻨﯿﺪ :‬

‫;‪using System‬‬

‫‪namespace ex‬‬۴۰
‫}‬
‫class Class۱‬‬
‫}
‫[‪[STAThread‬‬
‫(‪static void Main(string[] args‬‬
‫}
‫;("‪Console.WriteLine("Enter ۱ character to be evaluated‬‬
‫;()‪char cUserInput = (char) Console.Read‬‬
‫( ( ‪if ( char.IsDigit ( cUserInput‬‬
‫;("!‪Console.WriteLine("The char is a number‬‬
‫‪else‬‬
‫;("!‪Console.WriteLine("The char is not a number‬‬
‫{
{‬
‫{‬


ﻧﻜﺎﺗﻲ در ﻣﻮرد ﻛﺪ ﻓﻮق :‬


‫ﺳﻲ ﺷﺎرپ ﺑﻪ ﻛﻮﭼﻜﻲ و ﺑﺰرﮔـﻲ ﺣـﺮوف ﺣـﺴﺎس اﺳـﺖ . ﺑـﺮای ﻣﺜـﺎل ‪ cUserInput‬ﺑـﺎ cUserinput‬‬ ‫ﻓﺮق ﻣﻲ ﻛﻨﺪ.‬
‫ﺣﺘﻤﺎ ﺑﺎﻳﺪ ﺑﻌﺪ از ‪ if‬ ﭘﺮاﻧﺘﺰھﺎ ذﻛﺮ ﮔﺮدد.‬ ‫
ﺣﺘﻤﺎ ﺑﺎﻳﺪ داﺧﻞ ‪ if‬ ﻳﻚ ﻋﺒﺎرت ‪ Boolean‬ ذﻛﺮ ﺷﻮد ﻣﺎﻧﻨﺪ ( ۵>‪. if( x‬‬
‫در ﺳـﻲ ﺷـﺎرپ ﻣﻘﺎﻳـﺴﻪ ی ﺗـﺴﺎوی دو ﻋﺒـﺎرت ﺑـﺎ == و اﻧﺘـﺴﺎب ﺑـﺎ = اﻧﺠـﺎم ﻣـﻲ ﺷـﻮد.
‫ﻣﻮاردی ھﺴﺘﻨﺪ ﻛﻪ اﻏﻠﺐ ﺗﺎزه ﻛﺎران ﺑﺎ آن ﻣﺸﻜﻞ دارﻧﺪ! ﺑﺮای ﻣﺜﺎل ( ۳==‪ if ( i‬ﺻﺤﯿﺢ اﺳﺖ اﻣـﺎ (۳ =‪ if ( i‬در‬ ‫ﺳﻲ ﺷﺎرپ ﻣﻌﻨﺎﻳﻲ ﻧﺪارد.‬
‫اﮔﺮ ﺑﻌﺪ از ‪ if‬ ﻳﻚ ﺧﻂ ﻛﺪ ﻗﺮار ﮔﯿﺮد ﻧﯿﺎزی ﺑﻪ آوردن آﻛﻮﻻد ھﺎ ﻧﯿﺴﺖ. ھﻨﮕﺎﻣﻲ ﻧﯿﺎز ﺑﻪ آﻛﻮﻻدھﺎ ﻣﻲ ﺑﺎﺷﺪ ﻛـﻪ‬ ‫ﺑﯿﺶ از ﻳﻚ ﺧﻂ ﺑﺎﻳﺪ ﺑﻌﺪ از ‪ if‬ ﻗﺮار ﮔﯿﺮد.‬

‫ھﻤﺎﻧﻄﻮر ﻛﻪ ذﻛﺮ ﺷﺪ در ﺳﻲ ﺷﺎرپ ھﻤﻪ ﭼﯿـﺰ ﺷـﻲء اﺳـﺖ ﺣﺘـﻲ ﻧـﻮع ھـﺎی ﭘﺎﻳـﻪ اﻳـﻲ ﻣﺎﻧﻨـﺪ ‪ . char‬ﺑـﺎ‬ ‫اﺳﺘﻔﺎده از ﻣﺘﺪ ‪ IsDigit‬آن ﻣﻲ ﺗﻮان ﭼﻚ ﻛﺮد ﻛﻪ آﻳﺎ ورودی آن ﻋﺪد اﺳﺖ ﻳﺎ ﺧﯿﺮ؟ ( در ﻣﻮرد ﻣﺘـﺪھﺎ ﺻـﺤﺒﺖ‬‫ﺧﻮاھﺪ ﺷﺪ. )‬

اﺳﺘﻔﺎده از ‪: switch‬‬

ﺑﮫﺘﺮ اﺳﺖ اﻳﻦ ﻣﻮرد را ﺑﺎ ﻳﻚ ﻣﺜﺎل دﻧﺒﺎل ﻛﻨﯿﻢ.‬

‫ﭘﺮوژه ی ﺳﻲ ﺷﺎرپ ﺟﺪﻳﺪی ﺑﻪ ﻧﺎم ‪ ex۵۰‬ در ﺣﺎﻟﺖ ‪ console‬در ‪ VS.NET‬ﺑﺎز ﻛﻨﯿﺪ. دراﻳﻨﺠﺎ ﻣـﻲ ﺧـﻮاھﯿﻢ ﻳـﻚ ﻛـﻼس‬ ‫ﺟﺪﻳﺪ ﺗﻌﺮﻳﻒ ﻛﺮده و ﺗﻮﺳﻂ ﺧﺎﺻﯿﺘﻲ ﻛﻪ در آن اﻳﺠﺎد ﻣﻲ ﻛﻨﯿﻢ ﻣﺘﻮﺟﻪ ﺷـﻮﻳﻢ روز ﺟـﺎری ﻣﻄـﺎﺑﻖ ﺳﯿـﺴﺘﻢ ﭼـﻪ روزی‬ ‫اﺳﺖ .‬
‫ﻳﻚ ﻛﻼس ﺟﺪﻳﺪ از ﻣﻨﻮی ﭘﺮوژه ،ﺑﺎ اﺳﺘﻔﺎده از ﮔﺰﻳﻨﻪ ی ‪ Add class‬ ﺑﻪ ﺑﺮﻧﺎﻣﻪ اﺿﺎﻓﻪ ﻛﻨﯿـﺪ و ﻧـﺎم آﻧـﺮا در اﺑﺘـﺪا clsDate‬‬ ‫ﺑﮕﺬارﻳﺪ.‬

‫;‪using System‬‬

‫‪namespace ex‬‬۵۰
‫}
‫<‪///
‫‪public class clsDate‬‬
‫}‬
‫()‪public clsDate‬‬
‫}‬
‫//‬
‫‪// TODO: Add constructor logic here‬‬
‫//‬
{‬
public string systemDayOfWeek‬‬
‫}‬
‫‪get‬‬

 

 

{

string res="";
switch( System.DateTime.Now.DayOfWeek.ToString())
{
case "Saturday" :
res = "‫;"ﺷﻨﺒﻪ‬
break;
case "Sunday" :
res = "‫; "ﺷﻨﺒﻪ ﯾﮏ‬
break;
case "Monday":
res = "‫;"دوﺷﻨﺒﻪ‬
break;
case "Tuesday":
res = "‫;"ﺷﻨﺒﻪ ﺳﻪ‬
break;
case "Wednesday":
res = "‫;"ﺷﻨﺒﻪ ﭼﻬﺎر‬
break;
case "Thursday":
res = "‫;"ﺷﻨﺒﻪ ﭘﻨﺞ‬
break;
case "Friday":
res = "‫; "ﲨﻌﻪ‬
break;
}
return res ;
{
{
{
{


‫ھﻨﮕﺎم ذﺧﯿﺮه ﻛﺮدن اﻳﻦ ﻛﺪ وﻳﮋوال اﺳﺘﻮدﻳﻮ ﺑﻪ ﺷﻤﺎ اﺧﻄﺎر ﻣﻲ دھﺪ ﻛﻪ ﻛﺪ دارای ﺣﺮوف ﻳﻮﻧﯿﻜﺪ اﺳﺖ. از ﻣﻨﻮی ﻓﺎﻳـﻞ گزینه Advanced Save Option را انتخاب کنید.‬ در اﻳﻨﺠﺎ ﻣﻲ ﺗﻮان ﻧﻮع ذﺧﯿﺮه ﺳﺎزی را ﻳﻮﻧﯿﻜﺪ اﻧﺘﺨﺎب ﻛﺮد‬‬. ‫ﺑﺮای اﺳﺘﻔﺎده از ﻛﻼس ﻓﻮق ﻣﺎﻧﻨﺪ ﻣﻄﺎﻟﺒﻲ ﻛﻪ در ﻗﺴﻤﺖ ﻗﺒﻞ ﮔﻔﺘﻪ ﺷﺪ ﻋﻤﻞ ﻣﻲ ﻛﻨﯿﻢ :‬

using System;

namespace ex۰۵
{
class Class۱
{
[STAThread]
static void Main(string[] args)
{
clsDate m_var = new clsDate();
‫;( ‪Console.WriteLine( m_var.systemDayOfWeek‬‬
‫;()‪Console.ReadLine‬‬
‫{‬
‫{‬
‫{‬


‫ھﺮ ﭼﻨﺪ ﺣﺎﻟﺖ ‪ console‬ﻳﻮﻧﯿﻜﺪ را ﭘﺸﺘﯿﺒﺎﻧﻲ ﻧﻤﻲ ﻛﻨﺪ وﻟﻲ اﺻﻞ ﺑﺮﻧﺎﻣﻪ ﺑﺮای ﻣﺎ ﻣﮫـﻢ اﺳـﺖ و در آﻳﻨـﺪه ﺑﯿـﺸﺘﺮ از آن‬ ‫اﺳﺘﻔﺎده ﺧﻮاھﯿﻢ ﻛﺮد.‬
‫ھﻤﺎﻧﻄﻮر ﻛﻪ ﻣﻼﺣﻈﻪ ﻛﺮدﻳﺪ اﮔﺮ از ‪ switch‬اﺳﺘﻔﺎده ﻧﻤﻲ ﺷﺪ ﺑﺎﻳﺪ از ٧ ﻋﺪد ‪ if‬ اﺳﺘﻔﺎده ﻣـﻲ ﮔﺮدﻳـﺪ ﻛـﻪ اﺻـﻼ ﻇـﺎھﺮ‬ ‫ﺣﺮﻓﻪ ای و ﺷﻜﯿﻠﻲ ﻧﺪاﺷﺖ!‬
‫ﺑﺎ اﺳﺘﻔﺎده از ﻋﺒﺎرت زﻳﺮ ﻛﺎر ﻣﻘﺎﻳﺴﻪ ﺷﺮوع ﻣﻲ ﺷﻮد. روز ﺳﯿﺴﺘﻢ درﻳﺎﻓﺖ ﺷﺪه و وارد ﺑﺪﻧﻪ ی ‪ switch‬ ﻣﻲ ﮔـﺮدد.‬
‫ﺳﭙﺲ ﺗﻮﺳﻂ ‪ case‬ ھﺎ ﭼﻚ ﻣﻲ ﺷﻮد ﺗﺎ ﺗﺴﺎوی آن ﺑﺎ ﻋﺒﺎرت ﺑﻌﺪ از ‪ case‬ ﺑﻪ اﺛﺒﺎت ﺑﺮﺳﺪ.‬

‫;(()‪switch( System.DateTime.Now.DayOfWeek.ToString‬‬

‫اﮔﺮ ھﺮ ﻛﺪام از ﻋﺒﺎرات ﺑﻌﺪ از ‪ case‬ ﺻﺤﯿﺢ ﺑﻮدﻧـﺪ بعلت وجود دستور Break برنامه از Switch خارج میشد و در غیر اینصورت به بررسی دیگر Case ها میپرداخت.‬
‫اﮔﺮ ھﯿﭽﻜﺪام از ‪ case‬ھﺎ ﺻﺤﯿﺢ ﻧﺒﻮدﻧﺪ ﻣﻲ ﺗﻮان از ﮔﺰﻳﻨﻪ ی ‪ default‬ھﻢ در ﺻﻮرت ﻧﯿﺎز اﺳﺘﻔﺎده ﻛـﺮد.

 


منبع : سایت VCsharp.ir

 

 


نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:





پيوندها



نام :
وب :
پیام :
2+2=:
(Refresh)

خبرنامه وب سایت:





آمار وب سایت:  

بازدید امروز : 16
بازدید دیروز : 4
بازدید هفته : 16
بازدید ماه : 29
بازدید کل : 3354
تعداد مطالب : 14
تعداد نظرات : 5
تعداد آنلاین : 1


ابزار هدایت به بالای صفحه